ديف أوبس

نقل مجلد البيانات في PostgreSQL

كيفية نقل مجلد البيانات في PostgreSQL إلى مسار مختلف في خادم أوبنتو 16.04

تعتبر PostgreSQL واحدة من أشهر قواعد البيانات المفتوحة المصدر التي تستخدم في العديد من التطبيقات الحديثة بفضل قوتها واستقرارها. عند العمل مع PostgreSQL على خادم يعمل بنظام أوبنتو 16.04، قد يواجه المستخدمون الحاجة إلى نقل مجلد البيانات الخاص بقاعدة البيانات إلى مسار مختلف على نفس الخادم أو حتى إلى قرص آخر لتوفير مساحة أكبر أو لتحسين الأداء. في هذا المقال، سنتناول كيفية نقل مجلد البيانات في PostgreSQL إلى مسار جديد خطوة بخطوة، بالإضافة إلى بعض النقاط المهمة التي يجب مراعاتها لضمان أن العملية تتم بنجاح.

1. المتطلبات المبدئية

قبل البدء في نقل مجلد البيانات الخاص بـ PostgreSQL، يجب التأكد من توفر بعض المتطلبات الأساسية:

  • الوصول إلى الخادم باستخدام صلاحيات الجذر (root) أو مستخدم ذو صلاحيات عالية.

  • معرفة المسار الحالي لمجلد البيانات في PostgreSQL.

  • التأكد من أنه تم إيقاف خدمة PostgreSQL قبل إجراء أي تغييرات على المجلدات والملفات.

  • امتلاك مساحة كافية في المسار الجديد الذي سيتم نقل البيانات إليه.

2. إيقاف خدمة PostgreSQL

أول خطوة يجب القيام بها هي إيقاف خدمة PostgreSQL لتجنب حدوث أي تعارضات أثناء عملية النقل. يمكن فعل ذلك عبر تنفيذ الأمر التالي:

bash
sudo systemctl stop postgresql

سوف يقوم هذا الأمر بإيقاف خدمة PostgreSQL بشكل مؤقت، مما يضمن عدم استخدام قاعدة البيانات أثناء تنفيذ التعديلات على المجلدات.

3. معرفة المسار الحالي لمجلد البيانات

في PostgreSQL، يتم تحديد مسار مجلد البيانات عادةً في ملف التكوين postgresql.conf. للحصول على المسار الحالي لمجلد البيانات، يمكنك استخدام الأمر التالي للبحث عن الملف:

bash
sudo find / -name postgresql.conf

بمجرد العثور على الملف، افتحه باستخدام محرر نصوص مثل nano أو vim:

bash
sudo nano /etc/postgresql/9.5/main/postgresql.conf

ابحث عن السطر الذي يحتوي على data_directory، وهو الذي يحدد المسار الحالي لمجلد البيانات. يكون المسار غالبًا مثل /var/lib/postgresql/9.5/main.

4. إنشاء المجلد الجديد

الخطوة التالية هي تحديد المسار الجديد لمجلد البيانات وإنشاء المجلد الجديد في الموقع الذي تود نقل البيانات إليه. يمكنك القيام بذلك باستخدام الأمر mkdir على سبيل المثال:

bash
sudo mkdir -p /new/path/to/data

تأكد من أن لديك الأذونات المناسبة على المجلد الجديد وأنه متاح للوصول من قبل مستخدم PostgreSQL. لتعديل الأذونات، استخدم الأمر التالي:

bash
sudo chown -R postgres:postgres /new/path/to/data

5. نقل البيانات إلى المسار الجديد

الآن يمكنك نقل بيانات PostgreSQL من المسار القديم إلى المسار الجديد. يمكنك استخدام الأمر rsync لضمان أن جميع الملفات يتم نقلها بشكل صحيح ودون أي فقدان للبيانات:

bash
sudo rsync -av /var/lib/postgresql/9.5/main/ /new/path/to/data/

استخدم هذا الأمر بحذر، حيث يقوم بنقل جميع الملفات والمجلدات داخل مجلد البيانات. تأكد من أن النقل تم بشكل كامل.

6. تحديث ملف التكوين postgresql.conf

الخطوة التالية هي تحديث ملف التكوين postgresql.conf للإشارة إلى المسار الجديد لمجلد البيانات. استخدم المحرر النصي لفتح الملف مرة أخرى:

bash
sudo nano /etc/postgresql/9.5/main/postgresql.conf

ابحث عن السطر الذي يحتوي على data_directory وغير المسار ليعكس المسار الجديد الذي قمت بإنشائه. يجب أن يبدو السطر الجديد على النحو التالي:

bash
data_directory = '/new/path/to/data'

7. تحديث أذونات مجلد البيانات

بعد نقل البيانات وتحديث ملف التكوين، تأكد من أن الأذونات الخاصة بالمجلد الجديد صحيحة. يجب أن يكون المستخدم postgres هو صاحب المجلد الجديد وملفاته:

bash
sudo chown -R postgres:postgres /new/path/to/data

8. إعادة تشغيل خدمة PostgreSQL

بعد إتمام جميع الخطوات السابقة، يمكنك الآن إعادة تشغيل خدمة PostgreSQL لتفعيل التغييرات:

bash
sudo systemctl start postgresql

9. التحقق من صحة النقل

للتحقق من أن النقل قد تم بنجاح وأن PostgreSQL يعمل بشكل صحيح مع المجلد الجديد، يمكنك فحص حالة الخدمة باستخدام:

bash
sudo systemctl status postgresql

كما يمكنك تسجيل الدخول إلى قاعدة البيانات والتحقق من إمكانية الوصول إليها وتنفيذ بعض الاستعلامات للتأكد من عدم وجود أي مشاكل في الأداء:

bash
psql -U postgres

10. تنظيف المجلد القديم

بعد التأكد من أن النظام يعمل بشكل صحيح مع المسار الجديد، يمكنك حذف المجلد القديم لتوفير المساحة. ولكن قبل القيام بذلك، تأكد تمامًا من أن جميع البيانات قد تم نقلها بشكل كامل وأن PostgreSQL لا يزال يعمل بشكل طبيعي:

bash
sudo rm -rf /var/lib/postgresql/9.5/main

11. النسخ الاحتياطي بعد التغييرات

من الضروري دائمًا القيام بنسخة احتياطية من قاعدة البيانات بعد أي تغييرات كبيرة مثل نقل مجلد البيانات. يمكن استخدام الأدوات المدمجة في PostgreSQL مثل pg_dump لأخذ نسخة احتياطية من قاعدة البيانات:

bash
pg_dumpall -U postgres > /path/to/backup/all_databases.sql

12. ملاحظات إضافية

  • تأكد من أن المسار الجديد لمجلد البيانات يحتوي على مساحة كافية لدعم حجم قاعدة البيانات بالكامل.

  • إذا كنت تستخدم أكثر من إصدار من PostgreSQL على نفس الخادم، تأكد من تعديل ملفات التكوين الخاصة بكل إصدار بشكل منفصل.

  • تأكد من أن الإعدادات الأمنية على المجلد الجديد تسمح للمستخدم postgres بالوصول والكتابة فيه، كما هو الحال في المجلد القديم.

13. خاتمة

نقل مجلد البيانات في PostgreSQL إلى مسار مختلف قد يبدو عملية معقدة، ولكنها بسيطة إذا تم اتباع الخطوات بشكل دقيق. يعتبر هذا التغيير مفيدًا في حالات الحاجة إلى المزيد من المساحة التخزينية أو لتحسين أداء الخادم. من خلال إيقاف الخدمة، نقل البيانات، تحديث إعدادات التكوين، ثم إعادة تشغيل الخدمة والتحقق من صحة النقل، يمكن إجراء هذا التغيير بنجاح.